SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION [dbo].[FN_TCFACT_CAMB_MENS_Q01]
/*------------------------------------------------------*/      
/*---- Empresa           : OFISIS S.A.              ----*/      
/*---- Cliente           : OFISIS S.A.              ----*/      
/*---- Nombre FU         : FU_TIPO_CAMB_Q03         ----*/      
/*---- Desarrollado por  : Julio Diestra            ----*/      
/*---- Fecha Creación    : 09/03/2003               ----*/      
/*---- Base de Datos     : SLQ Server               ----*/      
/*---- Versión           : 8.0                      ----*/      
/*------------------------------------------------------*/      
/*---Modificado 1 por     :                         ----*/    
/*---Fecha Modificación   :                         ----*/    
/*---Detalle Modificación :                         ----*/    
/*------------------------------------------------------*/      
/*---  Declare  @PRUEBA TD_NU_016_004    
       Select @PRUEBA = (SELECT dbo.FN_TCFACT_CAMB_Q03('EUR', 'SOL', 1000, 'SOL', 'DOL', 3.50, 1.2))    
       Select @PRUEBA       ---*/    
/*------------------------------------------------------*/      
 (     
  @ISCO_EMPR TD_VC_002,   
  @ISCO_MONE TD_VC_003,  
  @ISCO_MONE_BASE TD_VC_003,     
  @INNU_ANIO      INTEGER ,  
  @INNU_MESE      INTEGER ) Returns Numeric(15,6)    
AS    
Begin    
  Declare    
  @VNFA_CAMB_AUXI  Numeric(15,6),  
  @VNFA_CAMB  Numeric(15,6)
         
    
SELECT @VNFA_CAMB_AUXI = FA_CAMB_CMPR FROM TCFACT_PRME      
 WHERE CO_EMPR = @ISCO_EMPR 
 AND CO_MONE = @ISCO_MONE   
 AND CO_MONE_BASE = @ISCO_MONE_BASE      
 AND NU_ANNO = @INNU_ANIO     
 AND NU_MESE = @INNU_MESE

IF ISNULL(@VNFA_CAMB_AUXI,0) > 0
	SELECT @VNFA_CAMB = @VNFA_CAMB_AUXI
ELSE
     SELECT @VNFA_CAMB = FA_CAMB_CMPR FROM TCFACT_PRME      
 WHERE CO_EMPR = @ISCO_EMPR
 AND CO_MONE = @ISCO_MONE_BASE
 AND CO_MONE_BASE = @ISCO_MONE     
 AND NU_ANNO = @INNU_ANIO      
 AND NU_MESE = @INNU_MESE

IF ISNULL(@VNFA_CAMB_AUXI,0) = 0
select @VNFA_CAMB = (select TOP 1 FA_CAMB_CMPR                
FROM TCFACT_PRME                
WHERE CO_EMPR = @ISCO_EMPR
 AND ((CO_MONE = @ISCO_MONE_BASE  AND CO_MONE_BASE = @ISCO_MONE) OR (CO_MONE = @ISCO_MONE  AND CO_MONE_BASE = @ISCO_MONE_BASE ))                                
AND ((NU_ANNO = Convert(int, @INNU_ANIO) AND NU_MESE <= Convert(int, @INNU_MESE) ) OR (NU_ANNO < Convert(int, @INNU_ANIO)))                      
ORDER BY NU_ANNO DESC, NU_MESE DESC)       


Return (IsNull(@VNFA_CAMB,0))    
End    
/*----------------fin Funcion---------------------------*/

GO
